#ifndef __LIBC_STDINT_H
#define __LIBC_STDINT_H

#include<arch/arch.h>

//define standard c type to another type,in order to we can assume size of this type.
#if _ARCH == X86
//define uint_t type
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
typedef char bool;

//define signed int_t type
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;

#else
    #if _ARCH == X64
        //define uint_t type
        typedef unsigned char uint8_t;
        typedef unsigned short uint16_t;
        typedef unsigned int uint32_t;
        typedef unsigned long uint64_t;
        typedef unsigned long long uint64_t;
        typedef char bool;

        //define signed int_t type
        typedef char int8_t;
        typedef short int16_t;
        typedef int int32_t;
        typedef long int64_t;
        typedef long long int64_t;
    #else
        #error "[config] system arch config errror!\nplease check include file "os/config.h" for micro CONFIG_ARCH!\n"
    #endif
#endif
#endif